<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Streams in CVS</title>

</HEAD>
<BODY BGCOLOR="#ffffff">

<h1 class="Head">Streams in CVS</h1>
<p class="Para">This section explains how streams are used with a CVS
repository. There are a few particularities that should be explained:</p>
<ul>
  <li>
    <p class="Para">Streams map to branches in CVS. The CVS repository always
    has a default branch called HEAD. This is the main trunk in the repository.</p>
  <li>
    <p class="Para">There is no easy way to query a CVS repository for all
    existing streams. This means that when a repository connection is made to a
    CVS repository, only HEAD will be shown. Creation of a new stream in the
    repository view can be viewed as defining a stream name. The underlying CVS
    branch is not created until you explicitly copy a project version or release
    contents to the stream. This is a particularity of CVS. Stream name
    definitions are persisted between workspace sessions until explicitly
    removed within the repository view.&nbsp;</p>
  <li>
    <p class="Para">Advanced CVS users can use the resource history view to see
    existing branch tags. All CVS tags are displayed in brackets to the right of
    the revision number (e.g. 1.2 (v1, merge1, v2)). Since streams are created
    as branch tags in CVS you can view the existing branch tags from a file's
    history then create a stream by that name to access an existing branch.</p>
  <li>
    <p class="Para">There is no easy way in CVS of determining if a project is
    part of branch, other than examining all files in the project for the
    appropriate branch tag. Consequently, when you create a new stream, the
    names of all existing projects in the repository will show up as children of
    the stream node in the repository browser tree.</p>
  <li>
    <p class="Para">Removing a stream from the repository browser can be viewed
    as removing the definition from the workbench. The underlying CVS branch is
    left untouched.</p>
  </li>
</ul>
<p class="Para">Since streams represent a basic service provided by CVS, their
usage patterns (for example when and why to use them) are well defined in CVS
specific documentation regarding branches.</p>
<P>
<img src = ../ngibmcpy.gif width="195" height="12">
</P>


</BODY>
</HTML>
